'''
@author: Nati
'''
from clasesPrincipales.Instruccion import Instruccion
import unittest
class TestInstruccion(unittest.TestCase):
    def setUp (self):
        self.instr1 = Instruccion (Instruccion.CPU, 3)
        self.instr2 = Instruccion (Instruccion.IO, 2)
        self.instr3 = Instruccion (Instruccion.EXIT)
    
    #El setUp() no puede redefinir de 0 los parametros creados; por dicho
    #motivo, con el tearDown () me aseguro que los redefina de 0. Asi no
    #ocurren errores inesperados
    def tearDown(self):
        self.instr1 = None
        self.instr2 = None
        self.instr3 = None

    def testExpandirInstruccionCpu (self): 
        self.setUp()
        listaInstrCPU= self.instr1.expandirInstruccionCpu()
        self.assertTrue(len(listaInstrCPU)==3)  
        self.tearDown()
    
    def testExpandirInstruccionIO (self):
        self.setUp()
        listaInstrIO= self.instr2.expandirInstruccionIo()
        self.assertTrue(len(listaInstrIO)==2)  
        self.tearDown()
        
    def testExpandirInstruccion (self):
        self.setUp()
        listaVacia= self.instr3.expandirInstruccion()
        self.assertTrue(listaVacia, [])